// pages/check/check.js
const Common = require('../../utils/common')
const request = require('../../utils/request')
Page({

  /**
   * 页面的初始数据
   */
  data: {
    queryParam: {
      pageSize: 10, //每页展示的条数
      pageNo: 1, //当前页数
      total: 1, //总页数
      planArriveDate: "",
      carNumber: "",
      orderStatus: "",
      searchKey: ""
    },
    // 核查列表数据
    checkList: [],

    // 筛选相关
    checkDate: "2025-10-22",
    selectedStatus: "全部状态",
    statusOptions: [],
    searchKey: "",
    hasReachedBottom: false,
    // 选择器状态
    showDatePicker: false,
    showStatusPicker: false,
    statusPickerValue: [0], // 默认选中"全部状态"
    statusIndex: 0,
    statusPickerValue: 'all',
    statusText: '全部状态',
    // 相机
    showCamera: false // 控制相机显示
  },
  // 开始日期
  dayChange: function (e) {
    console.log('picker发送选择改变，携带值为', e.detail.value)
    this.setData({
      "queryParam.planArriveDate": e.detail.value,
      "queryParam.pageSize": 10, //每页展示的条数
      "queryParam.pageNo": 1, //当前页数
      "queryParam.total": 1, //总页数
      checkList:[]
    })
    this.getPage();
  },
  // 返回上一页
  navigateBack() {
    wx.navigateBack();
  },

  // 跳转到详情页面
  navigateToDetail(e) {
    const id = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: `/pages/check/detail?id=${id}`
    });
  },
  // 拍照功能
  // takePhoto() {
  //   wx.chooseImage({
  //     count: 1,
  //     sizeType: ['original', 'compressed'],
  //     sourceType: ['camera'],
  //     success: (res) => {
  //       // 拍照成功后可以处理图片，例如直接进入核查
  //       const tempFilePath = res.tempFilePaths[0];
  //       console.log("拍照成功:", tempFilePath);
  //       // 这里可以根据实际业务逻辑处理，比如跳转到新的核查页面
  //     }
  //   });
  // },
  // 打开相机
  takePhoto() {
    this.setData({
      showCamera: true
    });
  },

  // 关闭相机
  closeCamera() {
    this.setData({
      showCamera: false
    });
  },

  // 拍摄照片
  capturePhoto() {
    const ctx = wx.createCameraContext();
    ctx.takePhoto({
      quality: 'high',
      success: (res) => {
        console.log('拍摄成功', res.tempImagePath);
        // 这里可以处理拍摄的照片，比如上传或预览
        wx.showToast({
          title: '拍摄成功',
          icon: 'success'
        });
       
         wx.serviceMarket.invokeService({
            service: 'wx79ac3de8be320b71',
            api: 'OcrAllInOne',
            data: {
              // 用 CDN 方法标记要上传并转换成 HTTP URL 的文件
              img_url: new wx.serviceMarket.CDN({
                type: 'filePath',
                filePath: res.tempImagePath
              }),
              data_type: 3,
              ocr_type: 10
            },
            success: function(res){
              console.log(111,res)
              console.log(res.data.plate_num_res.number.text)
              this.setData({
                "queryParam.searchKey": res.data.plate_num_res.number.text
              })
              this.refreshData();
            },
            failed:(error)=>{
              console.log(222,error);
              wx.showModal({
                title: 'fail',
                content: "识别失败",
              })
            }
          })
        // 关闭相机
        this.closeCamera();
        // 可以在这里添加照片处理逻辑
        // this.uploadPhoto(res.tempImagePath);
      },
      fail: (err) => {
        console.error('拍摄失败', err);
        wx.showToast({
          title: '拍摄失败',
          icon: 'none'
        });
      }
    });
  },

  // 相机错误处理
  cameraError(e) {
    console.error('相机错误', e.detail);
    wx.showToast({
      title: '相机启动失败',
      icon: 'none'
    });
    this.closeCamera();
  },
  // takePhoto() {
  //   const ctx = wx.createCameraContext()
  //   ctx.takePhoto({
  //     quality: 'high',
  //     success: (res) => {
  //       this.setData({
  //         src: res.tempImagePath
  //       })
  //     }
  //   })
  // },
  // error(e) {
  //   console.log(e.detail)
  // },
  // 搜索输入变化
  onSearchChange(e) {
    this.setData({
      "queryParam.searchKey": e.detail.value
    });
    // 这里可以添加实时搜索逻辑
    this.refreshData();
  },

  // 显示日期选择器
  showDatePicker() {
    this.setData({
      showDatePicker: true,
      showStatusPicker: false
    });
  },

  // 显示状态选择器
  showStatusPicker() {
    this.setData({
      showStatusPicker: true,
      showDatePicker: false
    });
  },

  // 隐藏所有选择器
  hidePickers() {
    this.setData({
      showDatePicker: false,
      showStatusPicker: false
    });
  },

  // 日期选择变化
  onDateChange(e) {
    const index = e.detail.value[0];
    this.setData({
      checkDate: this.data.dateOptions[index],
      showDatePicker: false
    });
    // 这里可以添加筛选逻辑
  },

  // 状态选择变化
  onStatusChange: function (e) {
    const index = e.detail.value;
    const selectedOption = this.data.statusOptions[index];

    this.setData({
      statusIndex: index,
      statusPickerValue: selectedOption.value,
      statusText: selectedOption.text,
      "queryParam.orderStatus": selectedOption.value
    });

    console.log('选中的值：', selectedOption.value);
    console.log('选中的文本：', selectedOption.text);
    // 这里可以添加筛选逻辑
    this.refreshData();
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const status = options.status;
    if(status){
      this.setData({
        "queryParam.orderStatus":status
      })
    }
    // 获取状态
    this.getOredrStatus();
    // 获取现在的日期
    this.calculateDates();
    this.getPage();
  },
  getPage: function () {
    wx.showLoading({
      title: '正在获取数据'
    })
    request.get('/admin-api/system/order-apply/checkPage', this.data.queryParam).then(res => {
      console.log("res:" + res)
      wx.hideLoading()
      if (res.code === 0) {
        var arr1 = this.data.checkList;
        var arr2 = res.data.list;
        arr1 = arr1.concat(arr2); //合并两个数组
        this.setData({
          checkList: arr1,
          "queryParam.total": res.data.total
        })
      }
    })
  },
  getOredrStatus: function(){
    request.get('/admin-api/mini/home/getOrderStatus').then(res => {
      console.log("res:" + res)
      wx.hideLoading()
      if (res.code === 0) {
        this.setData({
          "statusOptions": res.data
        })
      }
    })
  },
  refreshData: function(){
    this.setData({
      checkList: [],
      "queryParam.pageSize": 10, //每页展示的条数
      "queryParam.pageNo": 1, //当前页数
      "queryParam.total": 1 //总页数
    })
    this.getPage();
  },
  calculateDates() {
    this.setData({
      "queryParam.planArriveDate": Common.formatDate(new Date())
    });
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    // 模拟分页加载逻辑
    const currentLength = this.data.checkList.length;
    const pagesize = this.data.queryParam.pageNo;
    // 假设总数据量为3条，已加载全部时显示提示
    if (currentLength === this.data.queryParam.total) {
      this.setData({
        hasReachedBottom: true
      });
    } else {
      // 有更多数据时加载（实际项目中这里会请求接口）
      this.setData({
        hasReachedBottom: false,
        "queryParam.total": pagesize + 1
      });
      this.getPage()
    }
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})